Reo Coordination Language

In computer science, Reo is a channel-based exogenous coordination language.

Contents

Overview

In the context of distributed application, correction and validity of single processes does not imply the correctness of the whole system. In such systems, the communication between the processes is of a high importance. These communications can be implemented within the process but the maintenance of such built-in communications can be a problem. However, communications and interactions protocols can be specified using coordination languages.

Reo is a coordination language designed and proposed by Farhad Arbab at Centrum Wiskunde & Informatica in 2001. The first formal semantics of Reo was developed by Farhad Arbab and Jan Rutten in terms of a coalgebraic model of streams. Christel Baier et al. introduced Constraint Automata to express the operational semantics of Reo. Reo constitutes a strategic long-term research activity of the SEN3 research group at the Centre for Mathematics and Computer Science (CWI).

A typical Reo model consists of connectors. A more complex connector can be built up using simpler connectors. In each channel there exist a number of Channels and Nodes.[1] Two nodes communicate through a channel which has two ends. A channel end can be source or sink depending on accepting or dispensing data into / out of its channel. The behaviour of a channel specifies how the channel affect the data flow through its ends which defined by its type. An effect of this type can be , for example, the content, the conditions for loss, and/or creation of data go through the channel ends, or the atomicity, exclusion, order, and/or timing of their passage. There is no limitation on the behaviour of a channel. Therefore, new types of channels can be used simultaneously with other channels in a model.[2]

Tool support

The current implementation of Reo tool is developed in the Scala programming language, and runs on JVM (Java). A more detailed description, with the code, examples, and documentation, can be found in the Reo tool web page.

Animation

Animating the Reo circuit is a good way to better understanding its behaviour. Such examples can be found in A repository of Reo Connectors.

Model Checking

Reo models can be checked using model checker Vereofy and the mCRL2 toolset.

References

  1. ^ Krämer, Bernd J.; Lin, Kwei-Jay; Narasimhan, Priya (2007). Service-oriented Computing - ICSOC 2007: Fifth International Conference, Vienna, Austria, September 17–20, 2007, Proceedings. Springer. pp. 399. ISBN 354074973X. http://books.google.com/books?id=FsvSSBBP0FYC&pg=PA399&dq=%22Reo+Coordination+Language%22+-Wikipedia&as_brr=3&ei=0qhGSdjAIoXMkwTZyLzfBg. 
  2. ^ Arbab, Farhad (2004). Reo: a channel-based coordination model for component composition. Mathematical Structures in Computer Science 14(3). pp. 329–366. 

External links